Data storage systems are arrangements of hardware and software that include storage processors coupled to arrays of non-volatile storage devices, such as magnetic disk drives, electronic flash drives, and/or optical drives, for example. The storage processors service storage requests, arriving from host machines (“hosts”), which specify files or other data elements to be written, read, created, deleted, and so forth. Software running on the storage processors manages incoming storage requests and performs various data processing tasks to organize and secure the data elements stored on the non-volatile storage devices.
Some data storage systems employ data compression to improve storage efficiency. For example, a software program running on a data storage system may read data from disk, compress the data, and write the compressed data back to disk. To read data that has been compressed, the program may work in the opposite direction, e.g., by fetching compressed data from disk, decompressing the data, and presenting the decompressed data to a requesting program.